home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / basic / pbtool.exe / SETDRIVE.BAS < prev    next >
BASIC Source File  |  1991-10-18  |  1KB  |  44 lines

  1. '----------------------------------------------------------
  2. '  PROGRAM: SETDRIVE.BAS       PROGRAMMER: A. KELLETT
  3. '  DATE-WRITTEN: 10/18/91
  4. '  USING POWER BASIC V2.10A
  5. '
  6. '  THIS PROGRAM SETS THE CURRENT DRIVE TO THE USER-SPECIFIED
  7. '  DRIVE LETTER.
  8. '  VERSION: 0.00    LAST UPDATED: 00/00/00
  9. '----------------------------------------------------------
  10. CLS
  11. INPUT "NEW DRIVE [ABCD etc]: ";DRIVE$
  12. DRIVE% = ASC(UCASE$(DRIVE$)) - 65  :'** MAKE A=0, B=1, C=2, ETC
  13. CALL SETDRIVE(DRIVE%)
  14. IF DRIVE% = 99 THEN
  15.    PRINT "INVALID DRIVE!"
  16. ELSE
  17.    PRINT "CURRENT DRIVE IS NOW: ";CHR$(DRIVE% + 65)
  18. END IF
  19.  
  20. END
  21. '
  22. ' SET DRIVE OR RETURN AN ERROR
  23. '----------------------------------------------------------
  24. SUB SETDRIVE (DRIVE%)
  25.    %FL = 0: %AX = 1: %BX = 2: %CX = 3: %DX = 4
  26.    %SI = 5: %DI = 6: %BP = 7: %DS = 8: %ES = 9
  27.  
  28.    REG %AX, &H0E00                    ' SET AH FOR SET DRIVE SERVICE
  29.    REG %DX, DRIVE%                    ' SET DL TO SPECIFIED DRIVE
  30.    CALL INTERRUPT &H21                ' CALL DOS TO DO IT
  31.  
  32.    REG %AX, &H1900                    ' SET AH FOR GET DRIVE SERVICE
  33.    CALL INTERRUPT &H21                ' ASK DOS FOR CURRENT DRIVE
  34.  
  35.    NEWDRIVE% = REG(%AX) AND &HFF      ' DRIVE IS NOW IN AX - CLEAR
  36.                                       '   HIGH PART (AH) USING AND
  37.    IF NEWDRIVE% <> DRIVE% Then        ' IF THE NEW DRIVE ISN'T WHAT
  38.       DRIVE% = 99                     '   WAS SPECIFIED, THEN ERROR
  39.    ELSE
  40.       DRIVE% = NEWDRIVE%
  41.    END IF
  42.  
  43. END SUB
  44.